package com.jiot.controller.device;

import req.device.*;
import resp.device.AdminDeviceDetailResp;
import resp.device.AdminDeviceListResp;
import resp.device.DeviceCountResp;
import resp.device.AreaDeviceListResp;

/**
 * @author hushi
 * @date 2020/11/19 16:28
 * @description
 */
public interface DeviceAdminService {

    /**
     * 添加设备
     *
     * @param addDeviceReq
     */
    void addDevice(AddDeviceReq addDeviceReq);

    /**
     * 删除设备
     *
     * @param delDeviceReq
     */
    void delDevice(DelDeviceReq delDeviceReq);

    /**
     * 修改设备
     *
     * @param modifyDeviceReq
     */
    boolean modifyDevice(ModifyDeviceReq modifyDeviceReq);

    /**
     * 后台设备详情
     *
     * @param getAdminDeviceDetailReq
     * @return
     */
    AdminDeviceDetailResp deviceDetail(GetAdminDeviceDetailReq getAdminDeviceDetailReq);

    /**
     * 区域管理设备列表
     *
     * @param getAreaDeviceListReq
     * @return
     */
    AreaDeviceListResp areaDeviceList(GetAreaDeviceListReq getAreaDeviceListReq);

    /**
     * 查询设备数量
     * @return
     */
    DeviceCountResp deviceCount();

    /**
     * 区域管理员绑定设备
     * @param managerBindDeviceReq
     * @return
     */
    boolean areaDeviceBind(ManagerBindDeviceReq managerBindDeviceReq);

    /**
     * 设备解绑
     * @param deviceUntieReq
     * @return
     */
    boolean areaDeviceUntie(DeviceUntieReq deviceUntieReq);

    /**
     * 管理员设备列表
     * @param getAdminDeviceListReq
     * @return
     */
    AdminDeviceListResp deviceList(GetAdminDeviceListReq getAdminDeviceListReq);

    /**
     * 管理员为设备分配区域
     * @param adminSetDeviceManagerReq
     * @return
     */
    boolean deviceSetManager(AdminSetDeviceManagerReq adminSetDeviceManagerReq);

    /**
     * 查询用户设备数量
     * @param getUserDeviceCountReq
     * @return
     */
    Integer userDeviceCount(GetUserDeviceCountReq getUserDeviceCountReq);
}
